package com.copsoftware.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.copsoftware.comun.assemblers.PersonaAssembler;
import com.copsoftware.comun.beans.PersonaFlt;
import com.copsoftware.comun.delegates.PersonaDelegate;
import com.copsoftware.comun.interfaces.IPersona;
import com.copsoftware.procesos.denuncia.delegate.DenunciaDelegate;
import com.copsoftware.struts.forms.BaseActionForm;
import com.copsoftware.struts.forms.RegistrarDenunciaForm;
import com.copsoftware.utils.constants.CSConstants;
   
public class RegistrarDenunciaAction extends BaseAction {

	@Override
	public ActionForward process(ActionMapping mapping,
			BaseActionForm baseForm, HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		RegistrarDenunciaForm form = (RegistrarDenunciaForm) baseForm;
		ActionForward nextPage = mapping.findForward("EXITO_JSP");		
		DenunciaDelegate denunciaDelegate = new DenunciaDelegate();
		Integer estado=null;
		String mensaje_fwd="BUSCAR_DENUNCIA_ACT";
		
		if (form.getBtnAprobar().isSelected())
		{
			estado = CSConstants.ESTADO_APROBADO;
			denunciaDelegate.actualizarEstadoDenuncia(form.getCDenuncia(),estado );
			mensaje_fwd ="BUSCAR_DENUNCIA_ACT";
		}
		else if (form.getBtnDesaprobar().isSelected())
		{
			estado = CSConstants.ESTADO_REGISTRADO;
			denunciaDelegate.actualizarEstadoDenuncia(form.getCDenuncia(),estado );
			mensaje_fwd ="BUSCAR_DENUNCIA_ACT";
		}
		else if (form.getBtnRegistrar().isSelected())	
		{
			denunciaDelegate.guardarDenuncia(form);
			request.setAttribute("RegistrarDenunciaForm", form);
			mensaje_fwd = "EXITO_JSP";
		}
		else if (form.getBtnBuscarDenunciante().isSelected())
		{
			PersonaDelegate personaDelegate = new PersonaDelegate();
			PersonaFlt personaFlt = PersonaAssembler.createPersonaDenFlt(form);
			IPersona persona  =personaDelegate.buscarPersonaDen(personaFlt) ;
			form.setCPersonal(persona.getCPersona());
			form.setXPersonal(persona.getCustomName());
			request.setAttribute("RegistrarDenunciaForm", form);
			return mapping.findForward("DENUNCIA_FORM_FWD");
		}
		
		return mapping.findForward(mensaje_fwd);
	}
}
